Secure Distribution of Non-Privileged Authentication Credentials

ABSTRACT

An authentication credentials push service (ACPS) that securely pushes non-privileged authentication credentials to registered client entities. The ACPS comprises a classification server and a push server to provide access to non-privileged authentication credentials absent a pull transaction. The classification server in the ACPS classifies authentication credentials as either privileged (i.e. private, forgeable) or non-privileged (i.e. non-forgeable, nonsensitive). Credentials identified as being of a privileged nature are treated with restricted access. Alternatively, credentials classified as being of a non-privileged nature are made available for the push service. Authentication servers register with the ACPS to become consumers of the push service. A push server within the ACPS pushes non-privileged authentication credentials to registered authentication servers at predetermined intervals. Individual authentication credentials push services (ACPS) have access to different authentication credentials. An authentication server can use a dynamic name service (DNS) lookup to find a specific authentication credentials push service (ACPS).

The present invention is a continuation application of U.S. patent application Ser. No. 13/860,094, entitled “Secure Distribution of Non-Privileged Authentication Credentials”, filed on Apr. 10, 2013, which issued as U.S. Pat. No. 9,338,153 on May 10, 2016 and which claims priority to U.S. Provisional No. 61/622,829, filed Apr. 11, 2012, entitled “Secure Distribution of Non-Privileged Authentication Credentials”, the entirety each is expressly incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates generally to user authentication, secure user plan location (SUPL), authentication credentials, and public key infrastructure (PKI).

2. Background of Related Art

Authentication transactions are used to securely identify users, processes, and/or devices attempting to access a particular restricted service. Existing authentication transactions are implemented via a pull technology, i.e., a style of network communication in which clients request and pull information from centralized servers. Pull based authentication transactions may be executed via numerous pull based technologies, e.g., Home Location Registers (HLRs), Home Subscriber Servers (HSS), Triple A (AAA), Public Key Infrastructure (PKI) (a pull based technology that exposes the use of an online certificate status protocol (OCSP)), etc. Each existing pull based technology encompasses a well defined interface, designed to enable clients to query their service.

FIG. 5 depicts exemplary behavior of a conventional pull based technology.

In particular, a client entity (e.g. a client device, user, process, etc.) 500 in a pull based technology sends an initial request for data to a receiving authenticator server 511, as depicted in step 52 of FIG. 5. The receiving authenticator server 511 then processes the client request and returns a relevant response, as depicted in step 54 of FIG. 5.

In a conventional pull based authentication transaction, a client entity (e.g. a client device, user, process, etc.) initiates a request (a pull transaction) for information and/or verification of authentication credentials to an authentication server, to which the authentication server subsequently responds. FIG. 6 depicts logic flow for existing pull based authentication transactions.

In particular, to implement a pull based authentication transaction, a secure tunnel 600 is first established between a client entity 500 and an authenticator server 511, over an access network 610, as depicted in step 60 of FIG. 6. As depicted in step 62, the client entity 500 at one end of the secure tunnel 600 sends authentication credentials and/or a restricted service 640 authorization request to the authenticator server 511 at the other end of the secure tunnel 600. Upon receiving the client request, the authenticator server 511 initiates one or more queries (pull transactions) to one or more authentication data stores 620, requesting public and/or private authentication credentials for the requesting client entity 500, as depicted in step 64. In step 66, the authenticator server 511 uses authentication credentials retrieved from the authentication credentials data store(s) 620 to verify authentication credentials received (in step 60) from the client entity 500. In step 68, the authentication server 51 O authenticates the client entity 500 and authorizes the client entity 500 to access the restricted service (i.e. a service contingent upon authentication) 640. In step 70, the client entity 500 proceeds to access the restricted service 640.

To minimize impacts on authentication servers and client entities, pull servers are often positioned at locations near one another. Positioning pull servers at nearby locations (i.e. server co-location) helps minimize round trip delay and network latency. Unfortunately, server co-location also results in reduced resiliency through geographic distribution.

SUMMARY OF THE INVENTION

A service to securely pushed non-privileged authentication credentials to registered client entities comprises an authentication credentials push service (ACPS). In accordance with the principles of the present invention, an authentication credentials push service (ACPS) distinguishes between privileged (i.e. private, forgeable) authentication credentials and non-privileged (i.e. non-forgeable, non-sensitive) authentication credentials, to provide access to non-privileged authentication credentials absent a pull transaction. The present invention improves the performance and reduces delay of authentication transactions by permitting authentication credentials that include only nonprivileged authentication information to be freely distributed for use amongst authentication servers.

In accordance with the principles of the present invention, the authentication credentials push service (ACPS) comprises a classification server to classify authentication credentials as either privileged or non-privileged. The authentication credentials push service (ACPS) restricts access (i.e. access is permitted via a pull transaction) to all authentication credentials classified as privileged, and classifies all non-privileged authentication credentials as available for the push service.

In accordance with the principles of the present invention, authentication servers register with the authentication credentials push service (ACPS) to become consumers of the push service. The authentication credentials push service (ACPS) comprises a push server to push non-privileged authentication credentials to registered authentication servers at predetermined intervals.

In accordance with the principles of the present invention, individual authentication credentials push services (ACPS) have access to different authentication credentials. An authentication server can use a dynamic name service (DNS) lookup to find a specific authentication credentials push service (ACPS) to fulfill its authentication requirements.

BRIEF DESCRIPTION OF THE DRAWINGS

Features and advantages of the present invention become apparent to those skilled in the art from the following description with reference to the drawings, in which:

FIG. 1 depicts exemplary distribution of non-privileged bauthentication credentials via an authentication credentials push service (ACPS), in accordance with the principles of the present invention.

FIG. 2 depicts exemplary inbound and outbound messages exchanged for the authentication credentials push service (ACPS), in accordance with the principles of the present invention.

FIG. 3 depicts exemplary communication between an authentication credentials push service and a dynamic DNS service, in accordance with the principles of the present invention.

FIG. 4 shows an exemplary dynamic DNS registration removal of entry, in accordance with the principles of the present invention.

FIG. 5 depicts exemplary behavior of a conventional pull based technology.

FIG. 6 depicts logic flow for existing pull based authentication transactions.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

The present invention comprises an authentication credentials push service (ACPS) that securely pushes non-privileged (i.e. public) authentication credentials to registered client entities (i.e. authentication servers). The inventive authentication credentials push service (ACPS) distinguishes between privileged and non-privileged authentication credentials to provide access to non-privileged authentication credentials absent a pull transaction.

Various types of authentication credentials may be used to authenticate a transaction request. For instance, authentication credentials may include public and/or private authentication information. The present inventors have realized that conventional pull based authentication transactions do not distinguish amongst authentication credentials. Rather, most conventional authentication systems treat all authentication credentials as private/privileged information that may be shared only via a pull transaction.

However, the inventors herein realized that use of a pull transaction in the middle of an authentication transaction may cause significant transaction delay and may substantially degrade the performance of an authentication server. Moreover, insertion of a pull transaction in the middle of an authentication transaction often results in decreased scalability, decreased throughput, server co-location, and a lack of distinction amongst credentials.

For instance, an authentication transaction which must rely on an external pull transaction requires more system and network resources to complete the transaction. In particular, pull based authentication transactions require additional computer resources and time to request, receive, and process information during a pull transaction.

Further, pull based authentication transactions must request authentication credentials on an individual basis when credentials for individual users/devices require authentication at different server locations. Consequently, in many instances, authentication servers are unable to group pull transactions to improve efficiency, thereby resulting in reduced scalability.

When a pull transaction is implemented during an authentication transaction, the authentication transaction must go on hold until the external pull transaction is complete. Such a hold may add significant transaction delay, and may result in additional queuing capability and client entity impacts.

Moreover, an authentication server has no control over the responsiveness of a service from which a pull transaction is requested. For instance, due to other simultaneous activities, a pull server may experience abnormal delays. Abnormal delays at a pull server may lead to further downstream impacts on an authentication server and client entities.

The present inventors have appreciated that authentication servers sometimes require additional non-privileged authentication information (in addition to privileged authentication information) to authenticate transaction requests. However, conventional authentication services typically treat all authentication credentials as privileged/private information that may be shared only via a pull based transaction.

For instance, for authentication transactions in which additional non-privileged authentication information is required, conventional authentication servers may use inline queries to request (pull) this additional information from a designated service. In particular, an authentication server may use an inline query to acquire, e.g., an exposed Certificate Revocation Ust (CRL) (i.e. public information) relevant to a client entity requesting authentication. The authentication server may then use this Certificate Revocation Ust (CRL) for authentication purposes, e.g., an authentication server may verify the status of the certificate to authenticate a client entity. An authentication server may additionally initiate pull transactions to request device and/or user characteristics from a credentials database/other designated service.

However, use of a pull transaction in the middle of an authentication transaction may cause significant transaction delay and may substantially degrade the performance of an authentication server. In particular, insertion of a pull transaction in the middle of an authentication transaction often results in decreased scalability, decreased throughput, server co-location, and a lack of distinction amongst credentials. Even so, conventional authentication transactions use pull transactions to acquire nearly all authentication credentials used to fulfill authentication requests.

In accordance with the principles of the present invention, an authentication credentials push service (ACPS) distinguishes between privileged and non-privileged authentication credentials to provide access to non-privileged authentication credentials absent a pull transaction. The authentication credentials push service (ACPS) provides a service to securely push nonprivileged authentication credentials to registered clients. By enabling nonprivileged authentication credentials to be accessed without a pull transaction, the present invention minimizes the number of pull transactions required during an authentication transaction and thus reduces delay and improves the performance of authentication transactions.

In accordance with the principles of the present invention, to provide non-privileged authentication credentials via a push service, the authentication credentials push service (ACPS) comprises a classification server to classify authentication credentials as either ‘privileged’ or ‘non-privileged’. In particular, the classification server classifies credentials containing private, forgeable information, such as username/pas sword combinations, etc., as privileged authentication credentials. Moreover, the classification server classifies authentication credentials containing only non-forgeable, non-sensitive information, such as information regarding a current state of a requesting client entity (e.g., an IP address, host name, operating system, etc.) as non-privileged authentication credentials.

Non-privileged authentication credentials include credentials that may be made publically available. Non-privileged authentication credentials must be used in combination with privileged authentication credentials to authenticate a transaction request and are not sufficient for authentication when used alone. Nonetheless, non-privileged authentication credentials play a valid and important role in transaction authentication. For instance, non-privileged authentication credentials are often used to perform validity checks. Exemplary non-privileged authentication credentials include: certificate revocation status, public keys, certificates, location information, device information, etc.

In accordance with the principles of the present invention, the authentication credentials push service (ACPS) awards an access restriction to each authentication credential, based on a classification of its contents. In particular, a system administrator identifies which authentication credentials are classified as privileged and which are classified as non-privileged either via an authentication credentials push service (ACPS) system configuration or via user to machine interfaces (graphical user interfaces (GUI)). Credentials identified as being of a privileged nature are treated with restricted access (as is the case in the marketplace today). In accordance with conventional authentication transactions, privileged (restricted access) authentication credentials are typically accessible via pull based transactions, only. Privileged authentication credentials may also be used in out of band sequences (which the ACPS may additionally support). Alternatively, authentication credentials identified as being of a non-privileged nature are classified as being available for the push service.

In accordance with the principles of the present invention, clients (authentication servers) register with the authentication credentials push service (ACPS) to become consumers of the push service (i.e. to receive push notifications). Once registered, clients may optionally identify certain types of credentials, and/or certain users, devices, etc., for which they would like to receive push notifications.

In accordance with the principles of the present invention, the authentication credentials uses a push server to distribute push notifications containing non-privileged authentication credentials to registered client entities at predetermined intervals.

FIG. 1 depicts exemplary distribution of non-privileged authentication credentials via an authentication credentials push service (ACPS), in accordance with the principles of the present invention.

In particular, as depicted in step 10 of FIG. 1, the authentication credentials push service (ACPS) 100 acquires access to non-privileged authentication data (e.g. IP addresses, certification status, public keys, location information. etc.) 110 via an out of band means. As depicted in step 12, an authentication server 510 registers with the authentication credentials push service (ACPS) 100 to receive push notifications. As depicted in step 14, once registration is granted, the push server begins pushing non-privileged authentication credentials to the registered authentication server 510 at predetermined intervals. In step 16, a client entity (e.g. a client device, user, process, etc.) 500 sends a request for authentication to the authentication server 510. In response to the authentication request, the authentication server 510 initiates one or more queries (pull transactions) to one or more credentials servers 620, requesting privileged authentication credentials for the requesting client entity 500, as depicted in step 18. In step 20, the authentication server 510 uses privileged authentication credentials retrieved from the credentials server(s) 620, and any relevant non-privileged authentication credentials received in previous push notifications to authenticate the requesting client entity 500, e.g., client device, user, process, etc.

In accordance with the principles of the present invention, to improve performance and minimize delay during authentication transactions, authentication credentials that include only non-privileged information may be freely distributed for use by authentication servers 510.

In accordance with the principles of the present invention, the authentication credentials push service (ACPS) 100 uses a predefined application layer message format designed for transportation over secure transports, e.g., secure sockets layer (SSL)/transport layer security (TLS), internet protocol security (IPSec), etc. An inventive authentication credentials push service protocol (ACPP) makes use of simple object access protocol (SOAP) with attachments, and uses hypertext transfer protocol (secure) (http(s)) as a transport protocol.

The present invention does not define a credentials attribute tag for the authentication credentials push service (ACPS) protocol (ACPP). Instead, credentials tags are defined per installation to allow flexibility for non-privileged credentials used in each authentication context.

In accordance with the principles of the present invention, the authentication credentials push service (ACPS) 100 supports authentication credential pushes, authentication credential pulls, requests for registration, and other queries/requests as they are deemed necessary. The authentication credentials push service (ACPS) 100 additionally supports transmission of text and binary data (base 64 encoded).

In accordance with the principles of the present invention, the following requests are supported by the authentication credentials push service (ACPS) 100: registration requests (i.e. RegistrationReq), deregistration requests (i.e. DeregistrationReq), non-privileged user credentials requests (i.e. UserCredentialsReq), and poll user credentials requests (i.e. PollUserCredentialsReq).

FIG. 2 depicts exemplary inbound and outbound messages exchanged for the authentication credentials push service (ACPS), in accordance with the principles of the present invention.

As depicted in step 20 of FIG. 2, registration requests, deregistration requests, and poll user credentials requests are all inbound messages transmitted from authentication servers 510 to the inventive authentication credentials push service (ACPS) 100. Alternatively, as depicted in step 22, user credentials requests are outbound messages transmitted from the authentication credentials push service (ACPS) 100 to authentication servers 510.

In accordance with the principles of the present invention, to request registration to the inventive push service, an authentication server 510 initiates a registration request message to the authentication credentials push service (ACPS) 100. A registration request message preferably includes the following required elements: transaction ID, registrationReq, VASPID, VASID, timestamp, realm, and one or more user ID elements.

In particular, a transaction ID element is preferably included in the SOAP header of a registration request message. The transaction ID element holds a unique identifier for the registration request message and preferably holds up to 40 characters or more. Moreover, a registrationReq element in a registration request message identifies the message as a registration request. The registration request element is preferably defined as the root element of the SOAP body.

A VASPID element in a registration request message contains a user ID for a requesting authentication server 510. Similarly, the VASID element in a registration request message holds a password for a requesting authentication server 510.

The timestamp element in the registration request message holds the time that the registration request message was sent to the authentication credentials push service (ACPS) 100. Moreover, the one or more user ID elements included in a registration request message correspond to user IDs (e.g. cell phone numbers, etc.) supported by the requesting authentication server 510.

Finally, a realm element in a registration request message holds realm(s) or domain(s) that may be used to identify a block of authentication credentials. In accordance with the principles of the present invention, each registration request message must contain one or more realm elements or one or more user ID elements. A registration request message may include both realm and user ID elements, however only one of the two types of elements (realm and user ID) is required.

A registration request message may also include attributes to explicitly identify certain types of authentication credentials a requesting authentication server 510 wishes to receive in push notifications.

In accordance with the principles of the present invention, the authentication credentials push service (ACPS) 100 returns a registration response message in response to a registration request message received from an authentication server 510. A registration response message preferably includes the following elements: transactionID, registrationResponse, statusCode, statusText, and details.

In accordance with the principles of the present invention, a transaction ID element in a registration response message is identical to a transaction ID element in a corresponding registration request message. A transaction ID element is preferably included in the SOAP header of the registration response message and may hold up to 40 characters.

Moreover, a registrationRsp element in a registration response message indicates that the message is a registration response. The registrationRsp element is preferably defined as the root element of the SOAP body.

A statusCode element in a registration response message holds a registration status code, e.g., passed, failed, etc., relevant to a corresponding registration request. Similarly, the statusText element in the registration response message holds status text relevant to a corresponding registration request. Likewise, the details element holds details regarding the status of a corresponding registration request. In accordance with the principles of the present invention, a details element conditionally populates a registration response message.

A registration request message may additionally include any other miscellaneous data regarding a corresponding request for registration.

In accordance with the principles of the present invention, a deregistration request message is a message sent from an authentication server 510 to the authentication credentials push service (ACPS) 100, to request termination of service registration. A deregistration request message preferably includes the following required (i.e. required in an outbound message) elements: transaction ID, deregistrationReq, VASPID, VASID, and timestamp.

In accordance with the principles of the present invention, a transaction ID element is preferably included in the SOAP header of a deregistration request message. The transaction ID element holds a unique identifier for the deregistration request message and preferably holds up to 40 characters.

Moreover, a deregistrationReq element in a deregistration request message identifies the message as a deregistration request. The deregistrationReq element is preferably defined as the root element of the SOAP body.

A VASPID element in a deregistration request message holds a user ID for a requesting authentication server 510. Similarly, a VASID element in a deregistration request message holds a password for a requesting authentication server 510. The timestamp element in a deregistration request message holds the time that the deregistration request message was sent to the authentication credentials push service (ACPS) 100.

Other miscellaneous data regarding a request for deregistration may also be included in a deregistration request message.

In accordance with the principles of the present invention, the authentication credentials push service (ACPS) 100 returns a deregistration response message to an authentication server 51 O in response to a deregistration request previously received therefrom.

In accordance with the principles of the present invention, the following elements are preferably included (but are not required) in a deregistration response message: transactionID, deregistrationRsp, statusCode, statusText, and details.

In particular, a transaction ID element is preferably included in the SOAP header of a deregistration response message. In accordance with the principles of the present invention, a transaction ID element in a deregistration response message is identical to a transaction ID element in a corresponding de registration request message. A transaction ID element preferably holds up to 40 characters.

Moreover, a deregistrationRsp element in a deregistration response message indicates that the message is a deregistration response. The deregistration response element is preferably defined as the root element of the SOAP body.

Moreover, a statusCode element in a deregistration response message holds a status code, e.g., passed, failed, etc., relevant to a corresponding deregistration request. Similarly, the statusText element in the deregistration response message holds status text relevant to the corresponding deregistration request. Likewise, the details element holds details regarding the status of the corresponding deregistration request. In accordance with the principles of the present invention, a details element conditionally populates a deregistration response message.

Other miscellaneous data regarding a request for deregistration may also be included in a deregistration response message.

In accordance with the principles of the present invention, the inventive authentication credentials push service (ACPS) 100 supports complete updates (i.e. updates that include all data, changed and unchanged) and delta updates (i.e. updates that include only data that has changed).

Moreover, the inventive authentication credentials push service (ACPS) 100 supports periodic and immediate credential push modes. In a periodic credential push mode, the authentication credentials push service (ACPS) 100 sends periodic credential updates to relevant authentication servers 510, based on a total number of updates and/or time intervals. Alternatively, in immediate credential push mode, the authentication credentials push service (ACPS) 100 pushes updated credentials to relevant authentication servers 510 as soon as updates are acquired.

In accordance with the principles of the present invention, a push server pushes user credentials request messages containing non-privileged authentication credentials to registered authentication servers 510 at 1 predetermined intervals. A user credentials request message preferably comprises the following elements: transaction ID, message integrity code (an optional message element), userCredentialsReq, VASPID, VASID, timestamp, allCredentials, validityPeriod, one or more userID elements, one or more credentials elements, and one or more validityPeriod elements.

In accordance with the principles of the present invention, a transaction ID element is preferably included in the SOAP header of a user credentials request message. The transaction ID element holds a unique identifier for the user credentials request message and preferably holds up to 40 characters. Moreover, a message integrity code element in a user credentials request message contains a hash algorithm value of message contents and a pre-shared key. Contents of a pre-shared key are decided based upon configuration.

In accordance with the principles of the present invention, a userCredentialsReq element in a user credentials request message identifies the message as a user credentials request. The userCredentialsReq element is preferably defined as the root element of the SOAP body.

A VASPID element in a user credentials request message holds a user ID for the originating entity. Similarly, a VASID element in a user credentials request message holds a password for the originating entity. The timestamp element in a user credentials request message holds the time that the user credentials request message was sent to an authentication server 510.

Moreover, a userID element in a user credentials request message contains a unique identifier (e.g., a cell phone number) for a client entity for which authentication credentials are being transmitted. One or more userIDs may be included in a user credentials request message. Further, a user credentials request message includes one or more credentials elements for each userID element included therein.

In accordance with the principles of the present invention, the authentication credentials push service (ACPS) 100 may use the same request to pass credentials, regardless of whether a full list or an updated (only) list of credentials is currently available.

In particular, an allCredentials element in a user credentials request message may contain a value of ‘true’ or ‘false’ (i.e. the allCredentials element is a Boolean element). In accordance with the principles of the present invention, if the value of an allCredentials element is ‘false’, then the user credentials request message contains only updated credentials. Alternatively, if the value of an allCredentials element is ‘true’, then the user credentials request message contains a full list of credentials (i.e. updated and non-updated) for each userID element included therein.

Moreover, a validityPeriod element in a user credentials request message holds a timestamp indicating when a particular authentication credential was created. The authentication credentials request message includes a validityPeriod element for each authentication credential, per user and/or per attribute level, included therein. An authentication server 510 uses a valldityPeriod element to determine the validity of pushed credentials.

In accordance with the principles of the present invention, an authentication server 510 returns a user credentials response message in response to a user credentials request message received from the authentication credentials push service (ACPS) 100. A user credentials response message preferably contains the following elements: transactionID, userCredentialsRsp, statusCode, statusText, and details.

In particular, a transaction ID element is preferably included in the SOAP header of a user credentials response message. In accordance with the principles of the present invention, a transaction ID element in a user credentials response message is identical to a transaction ID element in a corresponding user credentials request message. A transaction ID element preferably holds up to 40 characters or more.

Moreover, a userCredentialsRsp element in a user credentials response message indicates that the message is a user credentials response message. The userCredentialsRsp element is preferably defined as the root element of the SOAP body.

Moreover, a statusCode element in a user credentials response message holds a status code, e.g., passed, failed, etc., relevant to a corresponding user credentials request. Similarly, the statusText element in the user credentials response message holds status text relevant to the corresponding user credentials request Likewise, the details element holds details regarding the status of the corresponding user credentials request. In accordance with the principles of the present invention, a details element conditionally populates a user credentials response message.

A user credentials response message may also include any other miscellaneous data regarding a corresponding user credentials request.

In accordance with the principles of the present invention, a registered authentication server 510 may send a poll user credentials request message to the authentication credentials push service (ACPS) 100 to request updated authentication credentials. A poll user credentials request message preferably comprises the following required elements: transactionID,pollUserCredentialsReq, VASPID, VASIO, Timestamp, Realm, allCredentials,ValidityPeriod, and one or more userIDs.

In accordance with the principles of the present invention, a transaction ID element is preferably included in the SOAP header of a poll user credentials request message. The transaction ID element holds a unique identifier for the poll user credentials request message and preferably holds up to 40 characters.

Moreover, a pollUserCredentialsReq in a poll user credentials request message identifies the message as a poll user credentials request. The 5 pollUserCredentialsReq element is preferably defined as the root element of the SOAP body.

A VASPID element in a poll user credentials request message holds a user ID for a requesting authentication server 510. Similarly, a VASID element in a poll user credentials request message holds a password for the 10 requesting authentication server 100. Moreover, a timestamp element in a poll user credentials request message holds the time that the poll user credentials request message was sent to the authentication credentials push service (ACPS)

100.

In accordance with the principles of the present invention, a poll15 user credentials request message includes one or more userID elements corresponding to user IDs (e.g. ce!I phone numbers, etc.) supported by the requesting authentication server 510.

A realm element in a poll user credentials request message holds realm(s) or domain(s) that may be used to identify a block of authentication 20 credentials. In accordance with the principles of the present invention, each poll user credentials request message must contain one or more realm elements or one or more user ID elements. A poll user credentials request message may include both realm and user ID elements, however only one of the two types of elements (realm and user ID) is required.

A poll user credentials request message may also include attributes to explicitly identify certain types of authentication credentials that an authentication server wishes to receive in push notifications.

In accordance with the principles of the present invention, an allCredentials element in a poll user credentials request message may contain a true or false value (i.e. the allCredentials element is a Boolean element). In particular, when the value of an allCredentials element is ‘false’ in a poll user credentials request message, an authentication server 510 is requesting that only updated credentials be returned in a poll user credentials response message. Alternatively, when the value of an allCredentials element in a poll user credentials request message is ‘true’, an authentication server 510 is requesting that that a full list of credentials (updated and not updated) for indicated userIDs be returned in a poll user credentials response message.

Moreover, a validityPeriod element in a poll user credentials request message holds a timestamp. This validityPeriod element is used to request that the authentication credentials push service (ACPS) 100 return all credentials matching realm and/or userID values specified in the poll user credentials request message, that have been updated following the value in this validityPeriod (timestamp) element.

In accordance with the principles of the present invention, a poll user credentials response message is sent from the authentication credentials push service (ACPS) 100 to an authentication server 510 in response to a user credentials request message previously received therefrom. A poll user credentials response message preferably contains the following elements: transactionID, messagelntegrityCode, pollUserCredentialsRsp, VASPID, VASID, Timestamp, UserID, AllCredentials, Credentials, and ValidityPeriod.

In accordance with the principles of the present invention, a transaction ID element in a poll user credentials response message is identical to a transaction ID element in a corresponding poll user credentials request message. A transaction ID element is preferably included in the SOAP header of the poll user credentials response message and may hold up to 40 characters or more.

A message integrity code element in a poll user credentials response message contains a hash algorithm value of message contents and a pre-shared key. Contents of a pre-shared key are decided based upon configuration.

Moreover, a poilUserCredentialsRsp element is included in a poll user credentials response message to identify the message as a poll user credentials response. The pollUserCredentialsRsp element is preferably defined as the root element of the SOAP body.

The VASPID element in a poll user credentials response message holds a user ID for the originating entity. Similarly, the VASID element in a poll user credentials response message holds a password for the originating entity.

The timestamp element in a poll user credentials response message holds the time the poll user credentials response message is sent from the authentication credentials push service (ACPS) 100 to an authentication server 510.

Moreover, a userID element in a poll user credentials response message holds a unique identifier, e.g., a cell phone number, for a client entity for which authentication credentials are being transmitted. One or more userIDs may be included in a poll user credentials response message. Further, one or more credentials elements may be included in a poll user credentials response message for each userID indicated therein.

In accordance with the principles of the present invention, an ailCredentiais element in a poll user credentials response message contains a true or false value (i.e. the allCredentials element is a Boolean element). If the value of the allCredentials element is ‘false’, then only updates made to credentials are included in the poll user credentials response message. Alternatively, if the value of the allCredentials element is ‘true’, then the poll user credentials response message contains a full list of credentials (updated and non-updated) for each userID indicated therein.

Moreover, a validityPeriod element in a poll user credentials response message holds a timestamp that indicates when a particular authentication credential was created. A validity element is included in the poll user credentials response message for each authentication credential, per user and/or per attribute ieve,I indicated therein.

In accordance with the principles of the present invention, each authentication credentials push service (ACPS) 100 gains access to nonprivileged authentication credentials via an out of band means. Consequently, individual authentication credentials push services (ACPS) 100 may have access to different authentication credentials. In accordance with the principles of the present invention, authentication servers 510 may use a domain name system (DNS) service to lookup a specific authentication credentials push service (ACPS) 100 based on specific authentication requirements.

In accordance with the principles of the present invention, an authentication credentials push service (ACPS) 100 registers with a designated domain name system (DNS) service via standard dynamic DNS update (secure/non-secure) mechanisms. For instance, an authentication credentials push service (ACPS) 100 may register itself with one identifier for the authentication credentials push service (ACPS) 100, and may simultaneously maintain additional DNS registrations for typical network access and routing functions. By registering with a designated DNS service, an authentication credentials push service (ACPS) 100 identifies itself as being ‘available’. An authentication server 510 may then implement a DNS lookup to gain information necessary to connect with a particular authentication credentials push service (ACPS) 100.

FIG. 3 depicts exemplary communication between an authentication credentials push service and a dynamic DNS service, in accordance with the principles of the present invention.

In particular, as depicted in step 30 of FIG. 3, an authentication credentials push service (ACPS) 100 registers with a dynamic DNS service 300 (out of band). As portrayed in step 32, the authentication credentials push service (ACPS) 100 then sends a dynamic DNS (rfc 2136) update for address (A) and pointer (DNS) record type (PTR) records to the DNS server 300, and sets a time to live parameter (i.e. a health check interval). In step 34, the DNS server 300 sends a response to the authentication credentials push server (ACPS) 100 to acknowledge receipt of the update.

As depicted in step 36, the authentication credentials push service 100 then initiates a health check timer, based on the time to live parameter (TTL) sent to the DNS server 300 (in step 32). In accordance with the principles of the present invention, if the authentication credentials push service (ACPS) 100 fails before the health check timer (i.e. time to live parameter) has expired, then the DNS record expires and the DNS server 300 no longer forwards to the authentication credentials push service (ACPS) 100. Alternatively, as depicted in step 38, if the authentication credentials push service (ACPS) 100 does not fail before the health check timer (i.e. time to live parameter) has expired, then the authentication credentials push service (ACPS) 100 sends another update for address (A) and pointer (DNS) record type (PTR) records to the DNS server 300, along with a new time to live (TTL) parameter. In step 40, the DNS server 300 sends a response to the authentication credentials push server (ACPS) 100 to acknowledge receipt of the update.

If an authentication credentials push service (ACPS) 10 abnormally terminates (e.g. unexpectedly goes offline or can't complete periodic update process for some reason), then the dynamic DNS record expires when the time to live (TTL) value expires.

For a graceful shutdown, the authentication credentials push service (ACPS) 100 sends out an additional update message to remove entries from the DONS server 300.

FIG. 4 shows an exemplary dynamic DNS registration removal of entry, in accordance with the principles of the present invention.

In particular, as depicted in step 41 of FIG. 4, an authentication credentials push service (ACPS) 100 registers with a dynamic DNS service 300 (out of band). As portrayed in step 43, the authentication credentials push service (ACPS) 100 then sends a dynamic DNS (rfc 2136) update for the address (A) and pointer (DNS) record type (PTR) update class, set to ‘NONE’, to the DNS server 300. This update causes the address (A) and pointer (DNS) record type (PTR) resource records to be removed from the DNS server 300. In step 45, the DNS server 300 sends a response to the authentication credentials push server (ACPS) 100 to acknowledge receipt of the update.

An authentication credentials push service (ACPS) 100 performs the call flow depicted in FIG. 4 to remove itself from a pool of servers, when performing a graceful shutdown.

The invention has particular applicability to the arena of authentication, including web applications with authentication, whether it be consumers of authentication or the servers responsible for authentication, e.g., AAA, RADIUS, Diameter, HSS, VPN, etc.

While the invention has been described with reference to the exemplary embodiments thereof, those skilled in the art will be able to make various modifications to the described embodiments of the invention without departing from the true spirit and scope of the invention. 

1-16. (canceled)
 17. A method of pushing authenticating credentials without requiring a pull transaction, comprising: acquiring, at a physical authentication credentials push server, access to non-privileged authentication credentials; registering, at said physical authentication credentials push server, a physical authentication server to receive push notifications absent a pull request; pushing repeatedly, from said physical authentication credentials push server, said non-privileged authentication credentials to said physical authentication server registered to receive said push notifications.
 18. The method of pushing authenticating credentials without requiring a pull transaction according to claim 17, wherein: said access to non-privileged authentication data is acquired via an out of band communication channel.
 19. The method of pushing authenticating credentials without requiring a pull transaction according to claim 17, wherein said non-privileged authentication credentials comprise: non-forgeable information.
 20. The method of pushing authenticating credentials without requiring a pull transaction according to claim 17, wherein said non-privileged authentication credentials comprise: non-sensitive, non-forgeable information.
 21. The method of pushing authenticating credentials without requiring a pull transaction according to claim 17, further comprising: restricting, at said physical authentication credentials push server, access to privileged authentication credentials.
 22. The method of pushing authenticating credentials without requiring a pull transaction according to claim 17, further comprising: registering said physical authentication credentials push server with a domain name service (DNS) system.
 23. The method of pushing authenticating credentials without requiring a pull transaction according to claim 17, further comprising: communicating via a domain name service (DNS) lookup to acquire information sufficient to connect with said physical authentication credentials push server.
 24. The method of pushing authenticating credentials without requiring a pull transaction according to claim 17, further comprising: immediately pushing, from said physical authentication credentials push server, said non-privileged authentication credentials to said physical authentication server registered to receive said push notifications.
 25. A method of pushing authenticating credentials without requiring a pull transaction, comprising: acquiring, at a physical authentication credentials push server, access to non-privileged authentication credentials; registering, at said physical authentication credentials push server, a plurality of physical authentication servers to receive push notifications absent a pull request; pushing repeatedly, from said physical authentication credentials push server, said non-privileged authentication credentials to said plurality of physical authentication servers registered to receive said push notifications based on a total number of updates of said non-privileged authentication credentials.
 26. The method of pushing authenticating credentials without requiring a pull transaction according to claim 25, wherein: said access to non-privileged authentication data is acquired via an out of band communication channel.
 27. The method of pushing authenticating credentials without requiring a pull transaction according to claim 25, wherein said non-privileged authentication credentials comprise: non-forgeable information.
 28. The method of pushing authenticating credentials without requiring a pull transaction according to claim 25, wherein said non-privileged authentication credentials comprise: non-sensitive, non-forgeable information.
 29. The method of pushing authenticating credentials without requiring a pull transaction according to claim 25, further comprising: restricting, at said physical authentication credentials push server, access to privileged authentication credentials.
 30. The method of pushing authenticating credentials without requiring a pull transaction according to claim 25, further comprising: registering said physical authentication credentials push server with a domain name service (DNS) system.
 31. The method of pushing authenticating credentials without requiring a pull transaction according to claim 25, further comprising: communicating via a domain name service (DNS) lookup to acquire information sufficient to connect with said physical authentication credentials push server.
 32. The method of pushing authenticating credentials without requiring a pull transaction according to claim 25, further comprising: immediately pushing, from said physical authentication credentials push server, said non-privileged authentication credentials to said physical authentication server registered to receive said push notifications.
 33. A method of pushing authenticating credentials without requiring a pull transaction, comprising: acquiring, at a physical authentication credentials push server, access to non-privileged authentication credentials; registering, at said physical authentication credentials push server, a plurality of physical authentication servers to receive push notifications absent a pull request; pushing periodically, from said physical authentication credentials push server, said non-privileged authentication credentials to said plurality of physical authentication servers registered to receive said push notifications based on a total number of time intervals.
 34. The method of pushing authenticating credentials without requiring a pull transaction according to claim 33, wherein: said access to non-privileged authentication data is acquired via an out of band communication channel.
 35. The method of pushing authenticating credentials without requiring a pull transaction according to claim 33, further comprising: communicating via a domain name service (DNS) lookup to acquire information sufficient to connect with said physical authentication credentials push server.
 36. The method of pushing authenticating credentials without requiring a pull transaction according to claim 33, further comprising: immediately pushing, from said physical authentication credentials push server, said non-privileged authentication credentials to said physical authentication server registered to receive said push notifications. 